package portal.servlets;

import java.io.IOException;
import java.util.ArrayList;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.json.JSONArray;
import org.json.JSONObject;

import portal.modelo.Club;
import portal.modelo.Juegos;
import portal.modelo.Servicios;
import portal.negocio.GestionClubs;
import portal.negocio.GestionJuegos;
import portal.negocio.GestionReserva;
import portal.negocio.GestionServicios;

/**
 * Servlet implementation class RegistrarDiaCampoServlet
 */
@WebServlet("/RegistrarDiaCampoServlet")
public class RegistrarDiaCampoServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
	
    /**
     * @see HttpServlet#HttpServlet()
     */
    public RegistrarDiaCampoServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		GestionJuegos 		juegosImplements = new GestionJuegos();
		GestionServicios 	serviciosImplements = new GestionServicios();
		GestionClubs	 	clubsImplements = new GestionClubs();
		
		
		ArrayList<Juegos> arregloJuegos 		= juegosImplements.listarJuegos();
		ArrayList<Servicios> arregloServicios 	= serviciosImplements.listarServicios();
		ArrayList<Club> arregloClubs			= clubsImplements.listarClubs();
		
		request.setAttribute("arregloClubsList", arregloClubs );
		request.setAttribute("arregloJuegosList", arregloJuegos );
		request.setAttribute("arregloServiciosList", arregloServicios );
		
		RequestDispatcher rd = request.getRequestDispatcher("RegistrarDiaCampo.jsp");
		rd.forward(request, response);
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		
		GestionReserva reservaImplements = new GestionReserva();
		
		//Abrimos los datos guardados en sesion
		HttpSession session = request.getSession(true);
		
        String idPersona					= session.getAttribute("numeroDocumento").toString();
        
		
		String fechaReserva 				= request.getParameter("fechaReserva");
		String idClub 						= request.getParameter("idClub");
		String totalParticipantesReserva 	= request.getParameter("totalParticipantesReserva");
		String comentarioReserva 			= request.getParameter("comentarioReserva");
		
		//SE OBTIENEN LOS OBJETOS
		String jsonDATA_Juegos				= request.getParameter("juegos");
		String jsonDATA_Servicios			= request.getParameter("servicios");
		
		
		JSONArray mJsonArrayJuegos		= new JSONArray(jsonDATA_Juegos);
		JSONArray mJsonArrayServicios 	= new JSONArray(jsonDATA_Servicios);
		JSONObject mJsonObject 			= new JSONObject();
		
		Boolean respuestaSentenciaSQL = Boolean.FALSE;
		
		try{
			
			respuestaSentenciaSQL = reservaImplements.registrarReserva(fechaReserva, idClub, totalParticipantesReserva, comentarioReserva, idPersona);
			
			if (respuestaSentenciaSQL){
				
				int idReserva		= reservaImplements.obtenerIdReservaRegistrada(fechaReserva, idClub, totalParticipantesReserva, comentarioReserva, idPersona);
				System.out.println("EL ID DE LA RESERVA POR COTIZAR ES = " + idReserva);
				
				for (int i = 0; i < mJsonArrayJuegos.length(); i++) {
				    mJsonObject = mJsonArrayJuegos.getJSONObject(i);
				    
				    reservaImplements.registrarJuegosxCotizacion(idReserva, mJsonObject.getString("idJuego"), mJsonObject.getString("numeroParticipantes"),  mJsonObject.getString("comentario"));
				    
				}
				
				for (int i = 0; i < mJsonArrayServicios.length(); i++) {
				    mJsonObject = mJsonArrayServicios.getJSONObject(i);
				    
				    reservaImplements.registrarServiciosxCotizacion(idReserva, mJsonObject.getString("idServicio"), mJsonObject.getString("numeroParticipantes"), mJsonObject.getString("comentario"));
				    
				}
				
				reservaImplements.monetizarCotizacion(idReserva);
				
			}
			
		}catch(Exception e){
			System.out.println(e);
		}
		
		
	}

}
